package com.hejia.alauda.persistence.mybatis;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.Select;

import com.hejia.alauda.entity.FinancialAsset;
import com.hejia.alauda.entity.Product;
import com.hejia.alauda.entity.ProductSettlementDate;
import com.hejia.alauda.persistence.BaseMapper;

public interface FinancialAssetMapper extends BaseMapper<FinancialAsset> {

	/**
	 * 查找金融资产的产品结息日列表
	 * 
	 * @param financialAssetId
	 *            金融资产ID
	 * @return
	 */
	List<ProductSettlementDate> findProductSettlementDatesByFinancialAssetId(
			Long financialAssetId);

	/**
	 * 查找金融资产产品结息日列表
	 * 
	 * @param productId
	 *            金融资产产品ID
	 * @return
	 */
	List<ProductSettlementDate> findProductSettlementDatesByProductId(
			Long productId);

	/**
	 * 计算销售结束产品金额
	 * 
	 * @param map
	 * @return
	 */
	BigDecimal calculateSoldOutProductAmount(Map<String, Object> map);

	/**
	 * 计算正在销售产品金额
	 * 
	 * @param map
	 * @return
	 */
	BigDecimal calculateOnSellProductAmount(Map<String, Object> map);

	/**
	 * 计算已回款产品金额
	 * 
	 * @param map
	 * @return
	 */
	BigDecimal calculatePaymentCollectionAmount(Map<String, Object> map);

	/**
	 * 统计资产产品回款金额
	 * 
	 * @param financialAssetId
	 * @return 资产产品回款金额
	 */
	List<ProductSettlementDate> countProductSettlementDatesByFinancialAssetId(
			Map<String, Object> map);

}
